home *** CD-ROM | disk | FTP | other *** search
/ C & C++ Multimedia Cyber Classroom / C and C++ Multimedia Cyber Classroom (Prentice Hall) (1998).iso / src / fig20_15.jar / Ch20 / Fig20_15 / fig20_15.cpp
C/C++ Source or Header  |  1997-11-11  |  2KB  |  51 lines

  1. // Fig. 20.15: fig20_15.cpp
  2. // Testing Standard Library vector class template 
  3. // element-manipulation functions
  4. #include <iostream>
  5. #include <vector>
  6. #include <algorithm>
  7.  
  8. using namespace std;
  9.  
  10. int main()
  11. {
  12.    const int SIZE = 6;   
  13.    int a[ SIZE ] = { 1, 2, 3, 4, 5, 6 };
  14.    vector< int > v( a, a + SIZE );
  15.    ostream_iterator< int > output( cout, " " );
  16.    cout << "Vector v contains: ";
  17.    copy( v.begin(), v.end(), output );
  18.  
  19.    cout << "\nFirst element of v: " << v.front()
  20.         << "\nLast element of v: " << v.back();
  21.  
  22.    v[ 0 ] = 7;        // set first element to 7
  23.    v.at( 2 ) = 10;    // set element at position 2 to 10
  24.    v.insert( v.begin() + 1, 22 );  // insert 22 as 2nd element
  25.    cout << "\nContents of vector v after changes: ";
  26.    copy( v.begin(), v.end(), output );
  27.  
  28.    try {
  29.       v.at( 100 ) = 777;   // access element out of range
  30.    }
  31.    catch ( out_of_range e ) {
  32.       cout << "\nException: " << e.what();
  33.    }
  34.  
  35.    v.erase( v.begin() );
  36.    cout << "\nContents of vector v after erase: ";
  37.    copy( v.begin(), v.end(), output );
  38.    v.erase( v.begin(), v.end() );
  39.    cout << "\nAfter erase, vector v " 
  40.         << ( v.empty() ? "is" : "is not" ) << " empty";
  41.  
  42.    v.insert( v.begin(), a, a + SIZE );
  43.    cout << "\nContents of vector v before clear: ";
  44.    copy( v.begin(), v.end(), output );
  45.    v.clear();  // clear calls erase to empty a collection
  46.    cout << "\nAfter clear, vector v " 
  47.         << ( v.empty() ? "is" : "is not" ) << " empty";
  48.  
  49.    cout << endl;
  50.    return 0;
  51. }